#ifndef MYMUSIC_H
#define MYMUSIC_H

#include <QWidget>
#include"volumetool.h"
#include"musiclist.h"
#include<QMediaPlayer>
#include<QMediaPlaylist>
#include"commonpage.h"
#include"lrcpage.h"
#include<QPropertyAnimation>
QT_BEGIN_NAMESPACE
namespace Ui { class MYMusic; }
QT_END_NAMESPACE

class MYMusic : public QWidget
{
    Q_OBJECT

public:
    MYMusic(QWidget *parent = nullptr);
    ~MYMusic();


    void Init();
    void InitPlayer();

    void connectSignalAndSlots();//处理信号和槽函数
    QJsonArray randPiction();//给recboximage添加图片和给recitemtext设置名字

private slots:
    void on_close_clicked();

    void OnbtFormClick(int id);//切换页面
    void on_volume_clicked();

    void on_addLocal_clicked();

    void on_min_clicked();

    void on_max_clicked();
     void updataLikeMusicAndPage(bool isLike,const QString& musicId);
    //播放控制区槽函数
     void on_playMusic_clicked();

     void on_playUp_clicked();//上一曲

     void on_playDown_clicked();//下一曲

     void onLrcWordBtn();//点击歌词按钮

     void on_playBackMode_clicked();

     void onplaybackModeChanged(QMediaPlaylist::PlaybackMode playbackmode);
      void onplayALL(PageType pageType);//播放全部
      void PlayAllMusicOfPage(CommonPage* page,int index);
      void playMusicByIndex(CommonPage* page,int index);
      void onCurrentIndexChanged(int index);
      void onSetMusicMuted(bool isMuted);//处理静音
      void setMusicVolume(int volumeRadio);//改变音量大小
      void onDurationChanged(qint64 duration);//播放信号改变
      void onPositionChanged(qint64 position);//播放进度发生改变
      void onMusicSliderChanged(float ration);//进度条改变，音乐播放时间发生改变
      void onMetaDataAvailableChanged(bool available);//元数据发生改变时



protected:
     void mouseMoveEvent(QMouseEvent *event);
     void mousePressEvent(QMouseEvent *event);


private:
    Ui::MYMusic *ui;
    QPoint dragmouse;
    VolumeTool*volumeTool;//音量调节窗口
    lrcpage* Lrcpage;//lrc歌词面板
    QPropertyAnimation* lrcpageAnimation;//lrc动画效果
    MusicList musicList;//组织歌曲文件
    QMediaPlayer* player;//播放控制
    QMediaPlaylist* playerList;//管理播放源和一些播放控制
    CommonPage* currentPage;//记录当前正在播放的commonpage页面
    qint64 totalTime; //记录媒体源总时间
    int currentIndex;//当前播放音乐的索引
};
#endif // MYMUSIC_H
